草庐IT

python - Element Tree对xpath的限制

全部标签

python - 类似于 simplejson/json 的 XML 库? - Python

是否有与simplejson类似的库,可以实现数据与XML之间的快速序列化。e.g.json.loads('{vol:'III',title:'MagicalUnicorn'}')e.g.json.dumps([1,2,3,4,5])有什么想法吗? 最佳答案 您不会找到任何与json一样一致的xml,因为xml不知道数据类型。这取决于您是否遵循约定或强制遵守xml架构文件。也就是说,如果您愿意接受XML-RPC数据结构映射和一些限制,请查看Python标准库中的xmlrpclib包:http://docs.python.org/li

python处理无尽的XML

我正在开发一个应用程序,我的工作只是为该应用程序开发一个示例Python界面。应用程序可以提供基于XML的文档,我可以通过HTTPGet方法获取文档,但问题是基于XML的文档是无穷无尽的,这意味着没有结束元素。我知道文档应该用SAX来处理,但是怎么处理层出不穷的问题呢?任何想法,示例代码? 最佳答案 这是我用来解析从远程计算机获取的无穷无尽的xml流的方法(在我的例子中,我通过套接字连接并使用socket.makefile('r')创建文件对象)19.12.2.IncrementalParserObjectsparser=xml.s

Python lxml 和标准输入

我有一个xml文件,book.xml(http://msdn.microsoft.com/en-us/library/ms762271(VS.85).aspx)我想catbooks.xml并获取所有图书ID和图书ID的类型。类似于catbooks.xml|pythonreader.py如有任何提示或帮助,我们将不胜感激。谢谢。 最佳答案 要从标准输入读取XML文件,只需使用etree.parse。此函数接受一个文件对象,它可以是sys.stdin。importsysfromlxmlimportetreetree=etree.pars

xml - 将 XPath count() 与 contains() 一起使用

我正在使用以下(次优)XML:X:1Y:0X:1Y:0X:2Y:0X:1Y:0X:2Y:0我正在尝试使用XPath来计算的数量内容包含X:1的节点:count(contains(/a/b/c,'X:1'))但是,这会返回一个错误,而不是返回预期的3计数。.我做错了什么? 最佳答案 这不是您使用contains()的方式。尝试count(/a/b/c[contains(.,'X:1')]) 关于xml-将XPathcount()与contains()一起使用,我们在StackOverflo

python - 如何从 Python SAX 解析器返回数据?

我一直在尝试解析一些LXML无法理解的巨大XML文件,所以我不得不用xml.sax来解析它们。.classSpamExtractor(sax.ContentHandler):defstartElement(self,name,attrs):ifname=="spam":print("Wefoundaspam!")#nowwhat?问题是我不明白如何实际返回,或者更好的是,yield,这个处理程序发现给调用者的东西,而不用等待要解析的整个文件。到目前为止,我一直在摆弄threading.Thread和Queue.Queue,但这会导致各种线程问题,这些问题确实让我分心于实际我正在尝试解决

ruby - XPath 只选择子元素(不是空白文本节点)

我正在使用Nokogiri和XPath解析一些XML。当我这样做时:doc.xpath('//Order/child::node()').eachdo|node|putsnode.nameend它打印出所有节点,但也在名称之间打印出“文本”。我想我知道为什么:在我的xml中,节点之间有这样的空格:"hi\nbye"有没有办法告诉它忽略节点之间的内容? 最佳答案 使用://Order/node()[not(self::text()[not(normalize-space())])]这会选择任何Order元素的所有子节点,除了那些完全由

sql-server - XQuery/XPath 使用 sql 参数?

我正在尝试实现以下代码。declare@paravarchar(10)='b';declare@xxml='111122223333';select@x.query('/x/sql:variable("@para")');上面的代码应该得到2222的节点.但是,它得到以下错误Msg9335,Level16,State1,Line8XQuery[query()]:TheXQuerysyntax'/function()'isnotsupported. 最佳答案 declare@paravarchar(10)='b';declare@xx

java - Selenium WebElement xpath Java

我正在尝试使用xpath浏览网页,但我得到了一些混合结果。这是我正在使用的:driver.findElement(By.xpath("//div[contains(@class,'x-grid3-cell-innerx-grid3-col-0')]"));这实际上很好用,但我遇到的问题是:9230092475924769230192474当我在我的Selenium测试中运行那个xpath时,我总是得到第一个div。如何编辑我的xpath以检索第4个div(92301)或不是列表中第一个的其他一些div? 最佳答案 使用这个XPath

python - 使用 lxml 将 XML 转换为 Python 中的字典

StackOverflow上似乎有很多将XML转换为Python字典的解决方案,但没有一个能生成我正在寻找的输出。我有以下XML:lxmlhasanelegantlysimplesolution用于将XML转换为字典:defrecursive_dict(element):returnelement.tag,dict(map(recursive_dict,element))orelement.text不幸的是,我得到:('status',{'section2':None,'section1':None})代替:('status',{'section2':{'field1':'data1'

python - 如何使用 Python 将 XML 中的所有信息放入字典中

假设我有一个如下所示的XML文件。"blah""blah""blah""blah"我需要将此文件读入类似这样的字典。dict["A.B1.C1"]="blah"dict["A.B1.C2"]="blah"dict["A.B2.C1"]="blah"dict["A.B2.C2"]="blah"但是dict的格式并不重要,我只想将所有信息读入Python的变量中。问题是我不知道XML的结构,我只想阅读字典中的所有信息。有什么办法可以用Python做到这一点吗? 最佳答案 您可以在python中使用untangle库。untangle.p